#include <iostream>
#include<string>
using namespace std;
//封装意义一：将属性和行为作为一个整体来表现生活中的事物

////语法：class 名称{权限 属性  行为}；
////举例：设计圆类 求圆的周长
//class Circle {
//	//权限
//public:
//	//属性
//	int c_r;
//	double PI = 3.14;
//	//行为
//	//获取圆的周长
//	double get_C() {
//		return 2 * PI * c_r;
//	}
//};
//int main() {
//	//有了圆类，要用，还得创建一个具体的圆，也就是对象
//	Circle c1;
//	c1.c_r = 10;
//	cout << c1.get_C() << endl;
//	return 0;
//}

//作业：设计学生类
class Stu {
	//权限
protected://保护权限 类内可访问，类外不可访问 子可访问
//成员
	//属性
	int password = 123456;
private://私有权限 类内可访问，类外不可访问 子不可访问
	string sname;
	int sid;
	string car = "奔驰";
	//行为：赋值加获取
public://公共权限 类内类外均可访问
	//可读可写
	void set_name(string name) {
		sname = name;
	}
	void set_id(int id) {
		sid = id;
	}
	//只写
	void set_word(int word) {
		password = word;
	}
	void show_stu() {
		cout << sid << endl;
		cout << sname << endl;
	}
	//只读
	void show_car() {
		cout << car << endl;
	}
};

int main() {
	Stu s1;
	s1.set_name("zhangsan");
	s1.set_id(172665);
	s1.show_stu();
	s1.show_car();
	return 0;
}

/*
* struct 和 class 的区别
* struct 默认公共权限
* class 默认私有权限
*/

/*
* 成员属性设置为私有
* 1、控制读写权限
* 2、可以检查数据有效性
*/